package com.cotasul.negocio;

import java.util.List;
import java.util.Map;

import com.cotasul.bean.CompradorBean;
import com.cotasul.bean.OrcamentoBean;
import com.cotasul.negocio.interfaces.IOrcamentoServico;
import com.cotasul.persistencia.OrcamentoDao;
import com.cotasul.persistencia.interfaces.IDaoGenerico;
import com.cotasul.persistencia.interfaces.IOrcamentoDao;

public class OrcamentoServico<P extends OrcamentoBean> extends
		ServicoGenerico<P> implements IOrcamentoServico<P> {

	private IOrcamentoDao<P> dao;

	public OrcamentoServico() {
		this.dao = new OrcamentoDao<P>();
	}

	@Override
	public void alterar(P p) throws Exception {
		// TODO Auto-generated method stub

	}

	@Override
	public List<P> buscaOrcamentos(Map<String, String> param) throws Exception {

		return this.dao.buscaOrcamentos(param);
	}

	public List<P> filtraOrcamento(P p, CompradorBean comprador)
			throws Exception {
		return this.dao.filtraOrcamento(p, comprador);
	};

	public List<P> filtraOrcamentoFornecedor(P p,
			com.cotasul.bean.FornecedorBean fornecedor) throws Exception {
		return this.dao.filtraOrcamentoFornecedor(p, fornecedor);
	};

	@Override
	public Map<String, Long> salvar(P p) throws Exception {
		try {
			return this.dao.salvar(p);
		} catch (Exception e) {
			throw e;
		}

	}

	@Override
	public IDaoGenerico<P> getDao() {
		return this.dao;
	}

	@Override
	public void preSalvar(P p) {
		// TODO Auto-generated method stub

	}

	@Override
	public void posSalvar(P p) {
		// TODO Auto-generated method stub

	}

	@Override
	public void excluir(P p) throws Exception {
		// TODO Auto-generated method stub

	}

	@Override
	public List<OrcamentoBean> buscaOrcamentosFornecedorRelatorio(
			Map<String, String> param) throws Exception {
		// TODO Auto-generated method stub
		return this.dao.buscaOrcamentosFornecedorRelatorio(param);
	}

	@Override
	public byte[] imprimeRelatorioOrcamentosFornecedor(String diretorioJasper,
			String diretorioPdf, Map<String, Object> param) throws Exception {
		return this.dao.imprimeRelatorioOrcamentosFornecedor(diretorioJasper,
				diretorioPdf, param);
	}

	@Override
	public byte[] imprimeRelatorioOrcamentosComprador(String diretorioJasper,
			String diretorioPdf, Map<String, Object> param) throws Exception {
		return this.dao.imprimeRelatorioOrcamentosComprador(diretorioJasper,
				diretorioPdf, param);
	}
}
